﻿// 4746. 检测病毒.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://www.acwing.com/problem/content/4749/



有 N
 种电脑病毒，每种病毒用一个字符串来表示。

不同病毒的表示字符串也不同。

有 M
 个数据库，每个数据库也用一个字符串来表示。

如果一种病毒字符串是一个数据库字符串的子串，则说明该数据库感染了该病毒。

请你计算，每个数据库感染了多少种病毒。

注意，一个数据库被同一种病毒感染多次（即作为子串出现多次），只计数一次。

为了增加题目难度，本题有字符串加密规则，所有字符串都是加密后给出的。

具体的加密规则如下：

首先，将字符串中的所有字符使用 8
 位二进制 ASCII 码表示，得到一个 01
 串。

然后，从 01
 串最左端开始，每 6
 位组成一个新二进制数（如果最后不足 6
 位，则在末尾补 0
 至 6
 位即可），并将它们转化为十进制数。

接下来，根据下面给出的对照表，将每个得到的十进制数转化为对应字符，并组成一个新字符串。

最后，如果原字符串的长度模 3
 余 x
，则还需要在新字符串后面增加若干个 =，具体为：

x
 为 0
，则不需要增加 =
x
 为 1
，则增加 2
 个 =
x
 为 2
，则增加 1
 个 =
从而得到最终的加密字符串。

十进制数字	对应字符	十进制数字	对应字符	十进制数字	对应字符	十进制数字	对应字符
0	A	16	Q	32	g	48	w
1	B	17	R	33	h	49	x
2	C	18	S	34	i	50	y
3	D	19	T	35	j	51	z
4	E	20	U	36	k	52	0
5	F	21	V	37	l	53	1
6	G	22	W	38	m	54	2
7	H	23	X	39	n	55	3
8	I	24	Y	40	o	56	4
9	J	25	Z	41	p	57	5
10	K	26	a	42	q	58	6
11	L	27	b	43	r	59	7
12	M	28	c	44	s	60	8
13	N	29	d	45	t	61	9
14	O	30	e	46	u	62	+
15	P	31	f	47	v	63	/
例如，如果要对 hello 进行加密，则首先将其各个字符使用 8
 位二进制 ASCII 码表示，得到 01101000 01100101 01101100 01101100 01101111。

然后，每 6
 位组成一个新二进制数（最后要补两个 0
），得到 011010 000110 010101 101100 011011 000110 111100，转化为十进制表示分别为 26 6 21 44 27 6 60。

接下来，根据对照表，将每个得到的十进制数转化为对应字符并组成新字符串，得到 aGVsbG8。

最后，因为 hello 的长度为 5
，模 3
 后余 2
，所以还要在新字符串后面增加 1
 个 =，最终得到加密后字符串 aGVsbG8=。

输入格式
输入包含多组测试数据。

每组数据第一行包含整数 N
。

接下来 N
 行，每行包含一个加密后的病毒字符串。保证这 N
 个病毒字符串各不相同。

接下来一行包含整数 M
。

接下来 M
 行，每行包含一个加密后的数据库字符串。

每组数据输入完毕后，都会包含一个空行。

输出格式
每组数据输出 M
 行，其中第 i
 行输出第 i
 个数据库包含的病毒种类数量。

每组数据输出完毕后，还需输出一个空行。

数据范围
每个输入最多包含 15
 组数据。
0≤N≤512
,
1≤M≤128
。
加密前病毒字符串的长度取值范围 [1,64]
。
加密前数据库字符串的长度取值范围 [1,2048]
。
加密前字符串中字符的 ASCII 码取值范围 [0,255]
。

输入样例：
3
YmFzZTY0
dmlydXM=
dDog
1
dGVzdDogdmlydXMu

1
QA==
2
QA==
ICAgICAgICA=

输出样例：
2

1
0

样例解释
在第一组测试数据中，三个病毒的加密前字符串分别为 base64、virus、t:，数据库的加密前字符串为 test: virus.，包含后两种病毒。
*/
int main()
{
    std::cout << "Hello World!\n";
}

 